// indexOf() 方法在数组中搜索元素值并返回其位置
// 如果未找到项，则返回 -1。
// 如果项出现多次，则返回第一次出现的位置。
let arr = [1, 2, 3, 3];
console.log(arr.indexOf(3));
// lastIndexOf() 方法与 indexOf() 相同，但返回指定元素最后一次出现的位置
console.log(arr.lastIndexOf(3));

// includes() 方法检查数组中是否包含某个元素
// includes() 可以检查 NaN 值，而 indexOf() 不能
console.log(arr.includes(3));

// find() 方法返回通过测试函数的第一个数组元素的值
// 参数是一个函数
// 形式参数也是变量 也要具有实际意义
function myFunction(value, index, arr) {
	return value > 2;
}
console.log(arr.find(myFunction));

// findIndex() 方法返回通过测试函数的第一个数组元素的索引。
console.log(arr.findIndex(myFunction));

// findLast() 方法，它从数组末尾开始搜索，并返回满足条件的第一个元素的值
console.log(arr.findLast(myFunction));

// findLastIndex() 方法查找满足条件的最后一个元素的索引。
console.log(arr.findLastIndex(myFunction));


// 数组的排序
// 按照ASCII编码的顺序来排序 如果相同比较下一位
let arr1 = ["a", "c", "e", "d"];
arr1.sort();
console.log(arr1);

// 这时候会出现排序错误 100在25之前
// 我们需要借助sort函数中的参数来进行自定义排序规则
let arr2 = ["25", "100"];
arr2.sort();
console.log(arr2);

// 我们只需要函数的返回值 是 0 负数  正数的结果
function myFunction1 (a, b) {
	return a - b;
}

arr2.sort(myFunction1);
console.log(arr2);

// reverse() 方法反转数组中的元素
arr2.reverse();
console.log(arr2);



// 数组的迭代
// forEach() 方法为每个数组元素调用一次函数（回调函数）

let numbers = [45, 4, 9, 16, 25];
numbers.forEach(myFunction2);
/*

	注释：该函数接受 3 个参数：
		项目值
		项目索引
		数组本身

*/
function myFunction2(value, index, arr) {
 	console.log(value);
}

// 修饰变量时必须赋值
// const a;
// const b;
// b = [];


















